امنیت کرنل لینوکس به سرمایهگذاری بیشتری نیاز دارد
کیس کوک (Kees Cook)، از اعضای تیم امنیت نرمافزار متنباز گوگل، معتقد است برای تأمین امنیت کرنل لینوکس حداقل به 100 مهندس دیگر احتیاج است.
کیس کوک (Kees Cook)، از اعضای تیم امنیت نرمافزار متنباز گوگل، معتقد است برای تأمین امنیت کرنل لینوکس حداقل به 100 مهندس دیگر احتیاج است. کیس کوک، مهندس نرمافزار گوگل که مقدار زیادی از وقتش را برای ویژگیهای امنیتی کرنل لینوکس صرف کرده است، یک پست وبلاگی در مورد برخی مشکلات دائمی کرنل نوشته است که به عقیده وی، به قدر کافی به آنها توجه نمیشود. در حال حاضر، دو رویکرد مختلف به توسعه کرنل لینوکس وجود دارد: رویکرد بالادستی (upstream) و پاییندستی (downstream). در رویکرد بالادستی، باگها به توسعهدهندگان لینوکس گزارش میشود و آنها قبل از انتشار کرنل، باگ را رفع میکنند. در رویکرد پاییندستی، متخصصان پس از انتشار کرنل، باگهای آن را پیدا میکنند. روی هر کدام از نسخههای پایدار (stable release) کرنل، در هفته نزدیک 100 اصلاح امنیتی انجام میشود. این عدد، بار سنگینی روی دوش تولیدکنندگان لینوکس (از جمله تولیدکنندگان محصولات مبتنی بر لینوکس) میگذارد. آنها باید تصمیم بگیرند که از همه وصلهها صرف نظر کنند، فقط وصلههای مهم را در نظر بگیرند، یا همه وصلهها را اعمال کنند. کوک تا حدی تقصیر را متوجه زبان سی میداند: از آنجا که لینوکس به زبان سی نوشته شده است، همواره دچار مشکلات زیادی خواهد بود. او همچنین به مشکل لیست CVE نیز اشاره میکند: متخصصان با استفاده از لیست CVE، اهمیت باگها را میسنجند، اما این لیست کارایی لازم را ندارد؛ زیرا به همه اشکالات امنیتی، CVE تعلق نمیگیرد یا ممکن است اختصاص CVE به موقع انجام نشود. تنها راه این است که کرنل مورد استفاده به آخرین نسخه بهروزرسانی شود، اما سازمانها در برابر بهروزرسانی دائمی، مقاومت میکنند، زیرا امکان دارد بهروزرسانی، محصول را دچار اشکال کند. مشکل دیگر این است که بسیاری از تولیدکنندگان از کرنلهای قدیمی استفاده میکنند و به جای بهروزرسانی، اصلاحات امنیتی را روی کرنل قدیمی اعمال میکنند. این نوع رویکرد پاییندستی باعث موازی کاری میشود، زیرا مهندسان زیادی در شرکتهای مختلف، مسئله یکسانی را حل میکنند. کوک به ابزار فازینگ (ابزاری برای یافتن آسیبپذیریهای برنامهها) گوگل به نام Syzkaller اشاره میکند؛ این ابزار در حال حاضر حدود 1000 باگ احتمالی را در کرنل گزارش میکند و این عدد، صد واحد در سال افزایش مییابد. این در حالی است که در سال، بیش از 400 باگ رفع میشوند.
|
راه حل چیست؟ |
کوک چند پیشنهاد دارد. به عنوان مثال، اضافه کردن ابزارهای خودکار تست و فازینگ، ابزارهای یکپارچهسازی پیوسته (continuous integration) و اقدامات دیگری که کارایی فرایند توسعه نرمافزار را بالا میبرند. پیشنهاد دیگر او بهبود زنجیره کامپایلری (toolchain) لینوکس است: علاوه بر خود کرنل، باید به زنجیره ابزارهای کامپایلری نیز قابلیتهای دفاعی افزوده شود. از آنجا که این ابزارها از لحاظ فنی خارج از کرنل محسوب میشوند، معمولاً مورد غفلت واقع شده و روی آنها سرمایهگذاری کافی صورت نمیگیرد. کوک میگوید: طبق برآوردهای ما کرنل لینوکس و ابزارهای کامپایلری آن حداقل به 100 مهندس بیشتر نیاز دارند. او پیشنهاد میکند که شرکتها مهندسینی که به طور پاییندستی روی کد کرنل و امنیت کار میکنند را به کار بالادستی بگمارند. لینوکس یک سیستمعامل رایگان است که بسیاری از شرکتهای سودآور جهان از جمله خود گوگل از آن نیرو میگیرند. کمپانیهایی مثل گوگل یا آمازون میتوانند به راحتی این 100 مهندس را استخدام کنند. در ماه فوریه گوگل اعلام کرد دو توسعهدهنده تماموقت را برای کار بالادستی روی امنیت کرنل پشتیبانی مالی میکند.
|